home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_100 / 108_01 / strip.c < prev    next >
Text File  |  1985-11-13  |  1KB  |  59 lines

  1. #include bdscio.h
  2. #define INFILE 1
  3. #define OUTFILE 2
  4. /*
  5. Usage: STRIP <infile> <outfile>
  6.  
  7. This program strips the high order bit from each byte in <infile> and
  8. creates <outfile> from the stripped data.
  9. */
  10.  
  11. main(argc, argv)
  12.  
  13. int argc;
  14. char *argv[];
  15.  
  16. {
  17. int i;
  18. int input;
  19. char wrkbuf[BUFSIZ];
  20. char wrkbuf2[BUFSIZ];
  21.  
  22. i=0;
  23.  
  24.  
  25. if (argc!=3) {
  26.     prtuse();
  27.     return;
  28.     }
  29.  
  30. if (fopen(argv[INFILE],wrkbuf)==ERROR){
  31.     printf("\nCan't open %s",argv[INFILE]);
  32.     prtuse();
  33.     return;
  34.     }
  35. if (fcreat(argv[OUTFILE],wrkbuf2)==ERROR){
  36.     printf("\nCan't open %s",argv[OUTFILE]);
  37.     prtuse();
  38.     return;
  39.     }
  40. printf("\n             characters processed\r");
  41. while(((input=getc(wrkbuf))>0)&&(putc((input & 0x7f), wrkbuf2)!=ERROR)){
  42.     printf("%d\r",++i);
  43.     }
  44. if (putc(CPMEOF,wrkbuf2)<0){ 
  45.     printf("\nCan't write end of file marker in %s",argv[INFILE]);
  46.     }
  47. if((fclose(wrkbuf)<0)) {
  48.     printf("\nCan't close %s",argv[INFILE]);
  49.     }
  50. if(((fflush(wrkbuf2)<0)||(fclose(wrkbuf2)<0))){
  51.     printf("\nCan't close %s",argv[OUTFILE]);
  52.     }
  53. }
  54.  
  55. prtuse()
  56. {
  57. printf("\nUSAGE: strip <infile> <outfile>");
  58. }
  59.